from typing import List


class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        my_list = list(filter(lambda x: x != val, nums))
        nums[:] = my_list[:]

        return len(nums)


# 需要去修改引用类型的 地址的内容， 没意思
lll = Solution()
llist2 = [1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9]
print(lll.removeElement(llist2, 2))

# print(llist2)


llist3 = [1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9]
# 补充  去除数组中所有指定值的方法
# 1 while循环
while 2 in llist3:
    llist3.remove(2)
print(llist3)

# 2 filter 过滤
list4 = filter(lambda x: x != 1, llist3)
print(list(list4))

# 3 列表推导式
list5=[x for x in llist3 if x!=5]
print(list5)